package com.cskaoyan.javase.basic._0datatype;
/**
 * Java中的数据类型:
 *      数据类型 = 数据 + 操作
 * 比如int类型,表示取整数,并且可以做加减乘除等操作
 * String类型,表示取字符串,可以做拼接运算(+),还可以求长度等运算
 *
 * Java是强类型语言,任何变量,任何值都要有明确的数据类型,并且数据类型不会轻易改变。
 *
 * 数据类型的分类:
 *      1.基本数据类型: 四类八种
 *          整型: 就是表示整数,要注意的是Java中的整型都是有符号的整数(有符号数)
 *                有符号数: 如果用8位存储整数,首尾是符号位,0表示正数,1表示负数
 *                    其余7位才是数值位
 *                    这个时候取值范围是[-2^7,2^7-1] -128-127
 *              整型的这种存储特点,就意味着所占空间越大,取值范围就越广
 *              byte: 1个字节 -128-127
 *              short: 2个字节 三万多
 *              int: 4个字节 21亿多
 *              long: 8个字节 900亿亿(兆)
 *              其中int类型是最常用的整数类型 int本身就是整数单词（integer）的缩写
 *
 *          浮点型: 浮点数不是小数,只是能够表示小数罢了.
 *              简单来说,IEEE754标准下的浮点数,有两个最重要的特点:
 *                  1.浮点数的表示方式可以理解为在一个数（尾数）的基础上乘以它的幂运算（指数位/阶码），所以浮点数可以表示非常大和非常小的数！(无论什么浮点数都能够表示远比long要大的数)
 *                  2.浮点数乘以它的幂运算的那个尾数的长度是有限制的，这就导致浮点数有有效位数的限制.不能精确的表示一个过长的数.(精度丢失 数据失真)
 *              float: 4个字节
 *              double: 8个字节
 *
 *          字符型: char，char本身就是字符单词（character）的缩写，表示Java中的字符类型
 *              Java代码中双引号引起来的是字符串
 *              单引号引起来的就是字符，字符是一个个的
 *              Java中的char类型实际上就是存储了一个正整数的编码值用来表示字符
 *              所以char本身仍然是一个数值类型
 *              Java中的char类型占用2个字节，是一个16位的无符号正数
 *              它的取值范围是[0,65535]
 *
 *              所以char类型是可以参与数值运算的，当然是它的编码值参与运算
 *
 *          布尔型: boolean
 *              只有两种取值，真（true）和假（false）
 *
 *      2.引用数据类型：Java中只要不是基本数据类型，那么就是引用数据类型
 *          String就是典型的引用数据类型，表示字符串
 *
 * @since 11:34
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    // main方法快捷键psvm
    public static void main(String[] args) {
        char a = 'a';
        System.out.println(a + 0);
    }
}
